using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._SpatialAnalystTools._Overlay
{
    /// <summary>
    /// <para>Locate Regions</para>
    /// <para>Identifies the best regions, or groups of contiguous cells, from an input utility (suitability) raster that satisfy a specified evaluation criterion and that meet identified shape, size, number, and interregion distance constraints.</para>
    /// <para>从满足指定评估条件且满足已识别形状、大小、数量和区域间距离约束的输入实用程序（适宜性）栅格中识别最佳区域或连续像元组。</para>
    /// </summary>    
    [DisplayName("Locate Regions")]
    public class LocateRegions : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public LocateRegions()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_raster">
        /// <para>Input raster</para>
        /// <para><xdoc>
        ///   <para>The input utility raster from which the regions will be derived.</para>
        ///   <para>The higher the value in the input raster, the greater the utility.</para>
        ///   <para>The raster can be of either integer or floating-point type.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>用于派生区域的输入实用程序栅格。</para>
        ///   <para>输入栅格中的值越高，效用越大。</para>
        ///   <para>栅格可以是整数类型，也可以是浮点类型。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_out_raster">
        /// <para>Output raster</para>
        /// <para><xdoc>
        ///   <para>The output regions raster.</para>
        ///   <para>Each region is uniquely numbered with values greater than zero. Cells that do not belong to any regions will be assigned zero. The output is always an integer raster.</para>
        ///   <para>Additional fields are calculated for each region storing statistics of the selected regions. These fields are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>AVERAGE—The average utility value of the region.</bullet_item><para/>
        ///     <bullet_item>TOTAL—The total sum of the utility values within the region.</bullet_item><para/>
        ///     <bullet_item>MEDIAN—The median utility value of the region.</bullet_item><para/>
        ///     <bullet_item>HIGHEST—The highest individual cell value contained within the region.</bullet_item><para/>
        ///     <bullet_item>LOWEST—The lowest individual cell value contained within the region.</bullet_item><para/>
        ///     <bullet_item>COREAREA—The core area. Any cell farther than one cell from the region's edge is considered to be part of the core.</bullet_item><para/>
        ///     <bullet_item>CORESUM—The cumulative sum of the utility values for the core area.</bullet_item><para/>
        ///     <bullet_item>EDGE—The amount of edge using the P1 ratio, which is the ratio of the perimeter of the shape to the perimeter of a circle of the same area. The P1 ratio for a circle is 1.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输出区域栅格。</para>
        ///   <para>每个区域都有唯一的编号，值大于零。不属于任何区域的像元将被分配为零。输出始终为整数栅格。</para>
        ///   <para>为存储所选区域统计信息的每个区域计算其他字段。这些字段如下：</para>
        ///   <bulletList>
        ///     <bullet_item>AVERAGE - 区域的平均实用程序值。</bullet_item><para/>
        ///     <bullet_item>TOTAL - 区域内实用程序值的总和。</bullet_item><para/>
        ///     <bullet_item>MEDIAN - 区域的中值效用值。</bullet_item><para/>
        ///     <bullet_item>HIGHEST - 区域内包含的最高单个像元值。</bullet_item><para/>
        ///     <bullet_item>最低 - 区域内包含的最低单个像元值。</bullet_item><para/>
        ///     <bullet_item>核心区域 - 核心区域。任何距离区域边缘超过一个像元的像元都被视为核心的一部分。</bullet_item><para/>
        ///     <bullet_item>CORESUM - 核心区域的实用程序值的累积总和。</bullet_item><para/>
        ///     <bullet_item>EDGE - 使用 P1 比率的边量，P1 比率是形状的周长与相同面积的圆的周长之比。圆的 P1 比值为 1。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        public LocateRegions(object _in_raster, object _out_raster)
        {
            this._in_raster = _in_raster;
            this._out_raster = _out_raster;
        }
        public override string ToolboxName => "Spatial Analyst Tools";

        public override string ToolName => "Locate Regions";

        public override string CallName => "sa.LocateRegions";

        public override List<string> AcceptEnvironments => ["autoCommit", "cellSize", "cellSizeProjectionMethod", "compression", "configKeyword", "extent", "geographicTransformations", "mask", "outputCoordinateSystem", "rasterStatistics", "scratchWorkspace", "snapRaster", "tileSize", "workspace"];

        public override object[] ParameterInfo => [_in_raster, _out_raster, _total_area, _area_units.GetGPValue(), _number_of_regions, _region_shape.GetGPValue(), _region_orientation, _shape_tradeoff, _evaluation_method.GetGPValue(), _minimum_area, _maximum_area, _minimum_distance, _maximum_distance, _distance_units.GetGPValue(), _in_existing_regions, _number_of_neighbors.GetGPValue(), _no_islands.GetGPValue(), _region_seeds.GetGPValue(), _region_resolution.GetGPValue(), _selection_method.GetGPValue()];

        /// <summary>
        /// <para>Input raster</para>
        /// <para><xdoc>
        ///   <para>The input utility raster from which the regions will be derived.</para>
        ///   <para>The higher the value in the input raster, the greater the utility.</para>
        ///   <para>The raster can be of either integer or floating-point type.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>用于派生区域的输入实用程序栅格。</para>
        ///   <para>输入栅格中的值越高，效用越大。</para>
        ///   <para>栅格可以是整数类型，也可以是浮点类型。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input raster")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_raster { get; set; }


        /// <summary>
        /// <para>Output raster</para>
        /// <para><xdoc>
        ///   <para>The output regions raster.</para>
        ///   <para>Each region is uniquely numbered with values greater than zero. Cells that do not belong to any regions will be assigned zero. The output is always an integer raster.</para>
        ///   <para>Additional fields are calculated for each region storing statistics of the selected regions. These fields are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>AVERAGE—The average utility value of the region.</bullet_item><para/>
        ///     <bullet_item>TOTAL—The total sum of the utility values within the region.</bullet_item><para/>
        ///     <bullet_item>MEDIAN—The median utility value of the region.</bullet_item><para/>
        ///     <bullet_item>HIGHEST—The highest individual cell value contained within the region.</bullet_item><para/>
        ///     <bullet_item>LOWEST—The lowest individual cell value contained within the region.</bullet_item><para/>
        ///     <bullet_item>COREAREA—The core area. Any cell farther than one cell from the region's edge is considered to be part of the core.</bullet_item><para/>
        ///     <bullet_item>CORESUM—The cumulative sum of the utility values for the core area.</bullet_item><para/>
        ///     <bullet_item>EDGE—The amount of edge using the P1 ratio, which is the ratio of the perimeter of the shape to the perimeter of a circle of the same area. The P1 ratio for a circle is 1.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>输出区域栅格。</para>
        ///   <para>每个区域都有唯一的编号，值大于零。不属于任何区域的像元将被分配为零。输出始终为整数栅格。</para>
        ///   <para>为存储所选区域统计信息的每个区域计算其他字段。这些字段如下：</para>
        ///   <bulletList>
        ///     <bullet_item>AVERAGE - 区域的平均实用程序值。</bullet_item><para/>
        ///     <bullet_item>TOTAL - 区域内实用程序值的总和。</bullet_item><para/>
        ///     <bullet_item>MEDIAN - 区域的中值效用值。</bullet_item><para/>
        ///     <bullet_item>HIGHEST - 区域内包含的最高单个像元值。</bullet_item><para/>
        ///     <bullet_item>最低 - 区域内包含的最低单个像元值。</bullet_item><para/>
        ///     <bullet_item>核心区域 - 核心区域。任何距离区域边缘超过一个像元的像元都被视为核心的一部分。</bullet_item><para/>
        ///     <bullet_item>CORESUM - 核心区域的实用程序值的累积总和。</bullet_item><para/>
        ///     <bullet_item>EDGE - 使用 P1 比率的边量，P1 比率是形状的周长与相同面积的圆的周长之比。圆的 P1 比值为 1。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output raster")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _out_raster { get; set; }


        /// <summary>
        /// <para>Total area</para>
        /// <para><xdoc>
        ///   <para>The total amount of area for all regions.</para>
        ///   <para>The default is 10 percent of the input cells within the processing extent.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>所有区域的总面积。</para>
        ///   <para>默认值为处理范围内输入像元的 10%。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Total area")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _total_area { get; set; } = null;


        /// <summary>
        /// <para>Area units</para>
        /// <para><xdoc>
        ///   <para>Defines the area units used for the Total area, Region minimum area, and Region maximum area parameters.</para>
        ///   <para>The available options and their corresponding units are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Square map units—For the square of the linear units of the output spatial reference</bullet_item><para/>
        ///     <bullet_item>Square miles—For miles</bullet_item><para/>
        ///     <bullet_item>Square kilometers—For kilometers</bullet_item><para/>
        ///     <bullet_item>Hectares—For hectares</bullet_item><para/>
        ///     <bullet_item>Acres—For acres</bullet_item><para/>
        ///     <bullet_item>Square meters—For meters</bullet_item><para/>
        ///     <bullet_item>Square yards—For yards</bullet_item><para/>
        ///     <bullet_item>Square feet—For feet</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The default is based on the input raster dataset. If the input raster is in feet, yards, miles or any other imperial unit, Square miles will be used. If the input raster is in meters, kilometers, or any other metric unit, Square kilometers will be used.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义用于总面积、区域最小面积和区域最大面积参数的面积单位。</para>
        ///   <para>可用选项及其对应的单位如下：</para>
        ///   <bulletList>
        ///     <bullet_item>方形地图单位 - 用于输出空间参考的线性单位的平方</bullet_item><para/>
        ///     <bullet_item>平方英里 - 以英里为单位</bullet_item><para/>
        ///     <bullet_item>平方公里 - 以公里为单位</bullet_item><para/>
        ///     <bullet_item>公顷 - 对于公顷</bullet_item><para/>
        ///     <bullet_item>英亩 - 对于英亩</bullet_item><para/>
        ///     <bullet_item>平方米 - 用于米</bullet_item><para/>
        ///     <bullet_item>平方码 - 对于码</bullet_item><para/>
        ///     <bullet_item>平方英尺 - 英尺</bullet_item><para/>
        ///   </bulletList>
        ///   <para>默认值基于输入栅格数据集。如果输入栅格以英尺、码、英里或任何其他英制单位为单位，则将使用平方英里。如果输入栅格以米、千米或任何其他公制单位为单位，则将使用平方千米。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Area units")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _area_units_value _area_units { get; set; } = _area_units_value._SQUARE_MAP_UNITS;

        public enum _area_units_value
        {
            /// <summary>
            /// <para>Square map units</para>
            /// <para>Square map units—For the square of the linear units of the output spatial reference</para>
            /// <para>方形地图单位 - 用于输出空间参考的线性单位的平方</para>
            /// </summary>
            [Description("Square map units")]
            [GPEnumValue("SQUARE_MAP_UNITS")]
            _SQUARE_MAP_UNITS,

            /// <summary>
            /// <para>Square miles</para>
            /// <para>Square miles—For miles</para>
            /// <para>平方英里 - 以英里为单位</para>
            /// </summary>
            [Description("Square miles")]
            [GPEnumValue("SQUARE_MILES")]
            _SQUARE_MILES,

            /// <summary>
            /// <para>Square kilometers</para>
            /// <para>Square kilometers—For kilometers</para>
            /// <para>平方公里 - 以公里为单位</para>
            /// </summary>
            [Description("Square kilometers")]
            [GPEnumValue("SQUARE_KILOMETERS")]
            _SQUARE_KILOMETERS,

            /// <summary>
            /// <para>Hectares</para>
            /// <para>Hectares—For hectares</para>
            /// <para>公顷 - 对于公顷</para>
            /// </summary>
            [Description("Hectares")]
            [GPEnumValue("HECTARES")]
            _HECTARES,

            /// <summary>
            /// <para>Acres</para>
            /// <para>Acres—For acres</para>
            /// <para>英亩 - 对于英亩</para>
            /// </summary>
            [Description("Acres")]
            [GPEnumValue("ACRES")]
            _ACRES,

            /// <summary>
            /// <para>Square meters</para>
            /// <para>Square meters—For meters</para>
            /// <para>平方米 - 用于米</para>
            /// </summary>
            [Description("Square meters")]
            [GPEnumValue("SQUARE_METERS")]
            _SQUARE_METERS,

            /// <summary>
            /// <para>Square yards</para>
            /// <para>Square yards—For yards</para>
            /// <para>平方码 - 对于码</para>
            /// </summary>
            [Description("Square yards")]
            [GPEnumValue("SQUARE_YARDS")]
            _SQUARE_YARDS,

            /// <summary>
            /// <para>Square feet</para>
            /// <para>Square feet—For feet</para>
            /// <para>平方英尺 - 英尺</para>
            /// </summary>
            [Description("Square feet")]
            [GPEnumValue("SQUARE_FEET")]
            _SQUARE_FEET,

        }

        /// <summary>
        /// <para>Number of regions</para>
        /// <para><xdoc>
        ///   <para>Determines how many regions the Total area will be distributed across.</para>
        ///   <para>The maximum number of regions that can be specified is 30. The default is 1.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>确定“总面积”将分布在多少个区域中。</para>
        ///   <para>可以指定的最大区域数为 30。默认值为 1。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Number of regions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _number_of_regions { get; set; } = 1;


        /// <summary>
        /// <para>Region shape</para>
        /// <para><xdoc>
        ///   <para>Defines the shape characteristics for the output regions.</para>
        ///   <para>The regions start out from seed cell locations and grow outward with preference given to the cells that maintain the desired shape.</para>
        ///   <para>The available shape options are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Circle—Cells that maintain circular regions will receive a greater weight. This is the default.</bullet_item><para/>
        ///     <bullet_item>Ellipse—Cells that maintain elliptical-shaped regions will receive a greater weight.</bullet_item><para/>
        ///     <bullet_item>Equilateral triangle—Cells that maintain equilateral triangular-shaped regions will receive a greater weight.</bullet_item><para/>
        ///     <bullet_item>Square—Cells that maintain square-shaped regions will receive a greater weight.</bullet_item><para/>
        ///     <bullet_item>Pentagon—Cells that maintain pentagon-shaped regions will receive a greater weight.</bullet_item><para/>
        ///     <bullet_item>Hexagon—Cells that maintain hexagon-shaped regions will receive a greater weight.</bullet_item><para/>
        ///     <bullet_item>Octagon—Cells that maintain octagon-shaped regions will receive a greater weight.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义输出区域的形状特征。</para>
        ///   <para>这些区域从种子细胞位置开始，向外生长，优先生长到保持所需形状的细胞。</para>
        ///   <para>可用的形状选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>圆形 - 保持圆形区域的像元将获得更大的权重。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>椭圆 - 保持椭圆形区域的像元将获得更大的权重。</bullet_item><para/>
        ///     <bullet_item>等边三角形 - 保持等边三角形区域的像元将获得更大的权重。</bullet_item><para/>
        ///     <bullet_item>方形 - 保持方形区域的像元将获得更大的权重。</bullet_item><para/>
        ///     <bullet_item>五边形 - 保持五边形区域的像元将获得更大的权重。</bullet_item><para/>
        ///     <bullet_item>六边形—保持六边形区域的像元将获得更大的权重。</bullet_item><para/>
        ///     <bullet_item>八边形—保持八边形区域的像元将获得更大的权重。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Region shape")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _region_shape_value _region_shape { get; set; } = _region_shape_value._CIRCLE;

        public enum _region_shape_value
        {
            /// <summary>
            /// <para>Circle</para>
            /// <para>Circle—Cells that maintain circular regions will receive a greater weight. This is the default.</para>
            /// <para>圆形 - 保持圆形区域的像元将获得更大的权重。这是默认设置。</para>
            /// </summary>
            [Description("Circle")]
            [GPEnumValue("CIRCLE")]
            _CIRCLE,

            /// <summary>
            /// <para>Ellipse</para>
            /// <para>Ellipse—Cells that maintain elliptical-shaped regions will receive a greater weight.</para>
            /// <para>椭圆 - 保持椭圆形区域的像元将获得更大的权重。</para>
            /// </summary>
            [Description("Ellipse")]
            [GPEnumValue("ELLIPSE")]
            _ELLIPSE,

            /// <summary>
            /// <para>Equilateral triangle</para>
            /// <para>Equilateral triangle—Cells that maintain equilateral triangular-shaped regions will receive a greater weight.</para>
            /// <para>等边三角形 - 保持等边三角形区域的像元将获得更大的权重。</para>
            /// </summary>
            [Description("Equilateral triangle")]
            [GPEnumValue("TRIANGLE")]
            _TRIANGLE,

            /// <summary>
            /// <para>Square</para>
            /// <para>Square—Cells that maintain square-shaped regions will receive a greater weight.</para>
            /// <para>方形 - 保持方形区域的像元将获得更大的权重。</para>
            /// </summary>
            [Description("Square")]
            [GPEnumValue("SQUARE")]
            _SQUARE,

            /// <summary>
            /// <para>Pentagon</para>
            /// <para>Pentagon—Cells that maintain pentagon-shaped regions will receive a greater weight.</para>
            /// <para>五边形 - 保持五边形区域的像元将获得更大的权重。</para>
            /// </summary>
            [Description("Pentagon")]
            [GPEnumValue("PENTAGON")]
            _PENTAGON,

            /// <summary>
            /// <para>Hexagon</para>
            /// <para>Hexagon—Cells that maintain hexagon-shaped regions will receive a greater weight.</para>
            /// <para>六边形—保持六边形区域的像元将获得更大的权重。</para>
            /// </summary>
            [Description("Hexagon")]
            [GPEnumValue("HEXAGON")]
            _HEXAGON,

            /// <summary>
            /// <para>Octagon</para>
            /// <para>Octagon—Cells that maintain octagon-shaped regions will receive a greater weight.</para>
            /// <para>八边形—保持八边形区域的像元将获得更大的权重。</para>
            /// </summary>
            [Description("Octagon")]
            [GPEnumValue("OCTAGON")]
            _OCTAGON,

        }

        /// <summary>
        /// <para>Region orientation</para>
        /// <para><xdoc>
        ///   <para>Defines the orientation of the defined shape. Regions are grown out from the seed locations with preference given to the cells that maintain the desired orientation of the region shapes.</para>
        ///   <para>The orientation values are in compass degrees ranging from 0 to 360, increasing clockwise starting from north. The default is 0.</para>
        ///   <para>The default of 0 orients the shapes in the following manner: Circle—no effect; Ellipse—the minor axis is orientated north-south; Triangle and Pentagon—one point is straight up; Square, Hexagon, and Octagon—one flat side is oriented east-west.</para>
        ///   <para>If the Region shape is set to Circle, the Region orientation parameter is unavailable.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义已定义形状的方向。区域从种子位置生长出来，优先选择保持区域形状所需方向的细胞。</para>
        ///   <para>方向值以罗盘度为单位，范围从 0 到 360，从北开始顺时针递增。默认值为 0。</para>
        ///   <para>默认值 0 按以下方式定向形状：圆形 - 无效果;椭圆 - 短轴朝向南北;三角形和五边形——一个点是直向上的;正方形、六边形和八边形 - 一个平面朝向东西。</para>
        ///   <para>如果“区域”形状设置为“圆形”，则“区域方向”参数不可用。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Region orientation")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _region_orientation { get; set; } = 0;


        /// <summary>
        /// <para>Shape/Utility tradeoff (%)</para>
        /// <para><xdoc>
        ///   <para>Identifies the weight for the cells when growing the candidate regions in the parameterized region-growing algorithm. The weighting is a tradeoff between a cell's contribution for maintaining the region shape relative to the utility contribution of the cell's attribute value.</para>
        ///   <para>Higher values indicates maintaining the shape of the region is more important than selecting higher utility values. The acceptable percent values are 0 to 100, inclusively. The default is 50.</para>
        ///   <para>This parameter is used to identify the feasible candidate regions. The candidate regions that will be selected by the algorithm are controlled by the Evaluation method parameter.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>在参数化区域生长算法中生长候选区域时识别细胞的权重。权重是单元格对维护区域形状的贡献与单元格属性值的效用贡献之间的权衡。</para>
        ///   <para>较高的值表示保持区域的形状比选择较高的实用程序值更重要。可接受的百分比值为 0 到 100（含 0 到 100）。默认值为 50。</para>
        ///   <para>此参数用于识别可行的候选区域。算法将选择的候选区域由评估方法参数控制。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Shape/Utility tradeoff (%)")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double _shape_tradeoff { get; set; } = 50;


        /// <summary>
        /// <para>Evaluation method</para>
        /// <para><xdoc>
        ///   <para>The evaluation criteria to be used for determining which of the candidate regions identified in the parameterized region-growing algorithm are most preferred. The preference can be specified based on a particular statistic of the utility values, or spatial arrangement of the cells within the regions.</para>
        ///   <para>The available options are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Highest average value—Selects regions based on the highest average value. This is the default.</bullet_item><para/>
        ///     <bullet_item>Highest sum—Selects regions based on the highest sum.</bullet_item><para/>
        ///     <bullet_item>Highest median value—Selects regions based on the highest median value.</bullet_item><para/>
        ///     <bullet_item>Highest value—Selects regions based on the highest individual cell value contained within the region. This option ensures the best individual cells are selected.</bullet_item><para/>
        ///     <bullet_item>Lowest value—Selects regions based on the highest lowest individual cell value contained within the region. This option ensures the selected regions contain cells with really low utility.</bullet_item><para/>
        ///     <bullet_item>Greatest core area—Selects regions based on the greatest core area.Any cell that is farther than one cell from the edge of a region is considered to be part of the core. The edge distance can be controlled by the analysis cell size. Setting a smaller cell size can increase the core area.</bullet_item><para/>
        ///     <bullet_item>Highest sum of core utility values—Selects regions based on the highest cumulative sum of the utility values for the core area. The edge distance can be controlled by the analysis cell size.</bullet_item><para/>
        ///     <bullet_item>Greatest edge—Selects regions based on the greatest amount of edge using the P1 ratio, which is the ratio of the perimeter of the shape to the perimeter of a circle of the same area. The P1 ratio for a circle is 1.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>用于确定参数化区域生长算法中标识的哪些候选区域最优选的评估标准。可以根据效用值的特定统计数据或区域内像元的空间排列来指定首选项。</para>
        ///   <para>可用选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>最高平均值 - 根据最高平均值选择区域。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>最高总和 - 根据最高总和选择区域。</bullet_item><para/>
        ///     <bullet_item>最高中值 - 根据最高中值选择区域。</bullet_item><para/>
        ///     <bullet_item>最高值 （Highest value） - 根据区域内包含的最高单个像元值选择区域。此选项可确保选择最佳单个单元格。</bullet_item><para/>
        ///     <bullet_item>最低值 （Lowest value） - 根据区域内包含的最高最低单个像元值选择区域。此选项可确保所选区域包含效用非常低的单元格。</bullet_item><para/>
        ///     <bullet_item>最大核心区域 - 根据最大核心区域选择区域。任何距离区域边缘超过一个像元的像元都被视为核心的一部分。边距可由分析单元大小控制。设置较小的单元格大小可以增加核心面积。</bullet_item><para/>
        ///     <bullet_item>核心实用程序值的最高总和 - 根据核心区域的实用程序值的最高累积总和选择区域。边距可由分析单元大小控制。</bullet_item><para/>
        ///     <bullet_item>最大边 （Greatest edge） - 使用 P1 比率（即形状的周长与相同面积的圆的周长之比）根据最大边量选择区域。圆的 P1 比值为 1。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Evaluation method")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _evaluation_method_value _evaluation_method { get; set; } = _evaluation_method_value._HIGHEST_AVERAGE_VALUE;

        public enum _evaluation_method_value
        {
            /// <summary>
            /// <para>Highest average value</para>
            /// <para>Highest average value—Selects regions based on the highest average value. This is the default.</para>
            /// <para>最高平均值 - 根据最高平均值选择区域。这是默认设置。</para>
            /// </summary>
            [Description("Highest average value")]
            [GPEnumValue("HIGHEST_AVERAGE_VALUE")]
            _HIGHEST_AVERAGE_VALUE,

            /// <summary>
            /// <para>Highest sum</para>
            /// <para>Highest sum—Selects regions based on the highest sum.</para>
            /// <para>最高总和 - 根据最高总和选择区域。</para>
            /// </summary>
            [Description("Highest sum")]
            [GPEnumValue("HIGHEST_SUM")]
            _HIGHEST_SUM,

            /// <summary>
            /// <para>Highest median value</para>
            /// <para>Highest median value—Selects regions based on the highest median value.</para>
            /// <para>最高中值 - 根据最高中值选择区域。</para>
            /// </summary>
            [Description("Highest median value")]
            [GPEnumValue("HIGHEST_MEDIAN_VALUE")]
            _HIGHEST_MEDIAN_VALUE,

            /// <summary>
            /// <para>Highest value</para>
            /// <para>Highest value—Selects regions based on the highest individual cell value contained within the region. This option ensures the best individual cells are selected.</para>
            /// <para>最高值 （Highest value） - 根据区域内包含的最高单个像元值选择区域。此选项可确保选择最佳单个单元格。</para>
            /// </summary>
            [Description("Highest value")]
            [GPEnumValue("HIGHEST_VALUE")]
            _HIGHEST_VALUE,

            /// <summary>
            /// <para>Lowest value</para>
            /// <para>Lowest value—Selects regions based on the highest lowest individual cell value contained within the region. This option ensures the selected regions contain cells with really low utility.</para>
            /// <para>最低值 （Lowest value） - 根据区域内包含的最高最低单个像元值选择区域。此选项可确保所选区域包含效用非常低的单元格。</para>
            /// </summary>
            [Description("Lowest value")]
            [GPEnumValue("LOWEST_VALUE")]
            _LOWEST_VALUE,

            /// <summary>
            /// <para>Greatest core area</para>
            /// <para>Greatest core area—Selects regions based on the greatest core area.Any cell that is farther than one cell from the edge of a region is considered to be part of the core. The edge distance can be controlled by the analysis cell size. Setting a smaller cell size can increase the core area.</para>
            /// <para>最大核心区域 - 根据最大核心区域选择区域。任何距离区域边缘超过一个像元的像元都被视为核心的一部分。边距可由分析单元大小控制。设置较小的单元格大小可以增加核心面积。</para>
            /// </summary>
            [Description("Greatest core area")]
            [GPEnumValue("GREATEST_CORE_AREA")]
            _GREATEST_CORE_AREA,

            /// <summary>
            /// <para>Highest sum of core utility values</para>
            /// <para>Highest sum of core utility values—Selects regions based on the highest cumulative sum of the utility values for the core area. The edge distance can be controlled by the analysis cell size.</para>
            /// <para>核心实用程序值的最高总和 - 根据核心区域的实用程序值的最高累积总和选择区域。边距可由分析单元大小控制。</para>
            /// </summary>
            [Description("Highest sum of core utility values")]
            [GPEnumValue("HIGHEST_CORE_SUM")]
            _HIGHEST_CORE_SUM,

            /// <summary>
            /// <para>Greatest edge</para>
            /// <para>Greatest edge—Selects regions based on the greatest amount of edge using the P1 ratio, which is the ratio of the perimeter of the shape to the perimeter of a circle of the same area. The P1 ratio for a circle is 1.</para>
            /// <para>最大边 （Greatest edge） - 使用 P1 比率（即形状的周长与相同面积的圆的周长之比）根据最大边量选择区域。圆的 P1 比值为 1。</para>
            /// </summary>
            [Description("Greatest edge")]
            [GPEnumValue("GREATEST_EDGE")]
            _GREATEST_EDGE,

        }

        /// <summary>
        /// <para>Region minimum area</para>
        /// <para><xdoc>
        ///   <para>Define the minimum area allowed for each region.</para>
        ///   <para>The units specified by the Area units parameter will be used.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义每个区域允许的最小区域。</para>
        ///   <para>将使用面积单位参数指定的单位。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Region minimum area")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _minimum_area { get; set; } = null;


        /// <summary>
        /// <para>Region maximum area</para>
        /// <para><xdoc>
        ///   <para>Define the maximum area allowed for each region.</para>
        ///   <para>The units specified by the Area units parameter will be used.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义每个区域允许的最大区域。</para>
        ///   <para>将使用面积单位参数指定的单位。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Region maximum area")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _maximum_area { get; set; } = null;


        /// <summary>
        /// <para>Minimum distance between regions</para>
        /// <para><xdoc>
        ///   <para>Define the minimum distance allowed between regions. No two regions can be within this distance.</para>
        ///   <para>This parameter influences the parameterized region-growing (PRG) algorithm. If a cell has the potential of being added to a candidate region, but it is within this distance from any individual region in the dataset specified by the Input raster or feature of existing regions parameter, it will not be considered for the candidate region. The minimum distance setting is not applied to excluded locations (NoData cells).</para>
        ///   <para>The units specified by the Distance units parameter will be used.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义区域之间允许的最小距离。在这个距离内不能有两个区域。</para>
        ///   <para>此参数会影响参数化区域增长 （PRG） 算法。如果像元有可能被添加到候选区域，但该像元与输入栅格或现有区域要素参数指定的数据集中的任何单个区域都处于此距离内，则不会将其考虑用于候选区域。最小距离设置不适用于排除的位置（NoData 单元格）。</para>
        ///   <para>将使用距离单位参数指定的单位。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Minimum distance between regions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _minimum_distance { get; set; } = null;


        /// <summary>
        /// <para>Maximum distance between regions</para>
        /// <para><xdoc>
        ///   <para>Define the maximum distance allowed between regions. No region can be farther apart than this distance from at least one other region.</para>
        ///   <para>When sequentially selecting regions, if the next best region is farther than this distance from any of the already selected regions, it will not be considered at this time, but it may be selected later when more regions are selected.</para>
        ///   <para>The maximum distance is applied to the dataset specified in the Input raster or feature of existing regions parameter, in that at least one of the selected regions must be within the maximum distance from existing regions. The maximum distance setting is not applied to excluded areas (NoData cells) and has no effect on the PRG algorithm.</para>
        ///   <para>The units specified by the Distance units parameter will be used.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义区域之间允许的最大距离。任何区域与至少一个其他区域之间的距离都不能超过这个距离。</para>
        ///   <para>按顺序选择区域时，如果下一个最佳区域与任何已选定区域的距离远于此距离，则此时不会考虑该区域，但稍后选择更多区域时可能会选择该区域。</para>
        ///   <para>最大距离将应用于现有区域的输入栅格或要素参数中指定的数据集，因为所选区域中至少有一个必须位于与现有区域的最大距离内。最大距离设置不应用于排除区域（NoData 像元），并且对 PRG 算法没有影响。</para>
        ///   <para>将使用距离单位参数指定的单位。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Maximum distance between regions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public double? _maximum_distance { get; set; } = null;


        /// <summary>
        /// <para>Distance units</para>
        /// <para><xdoc>
        ///   <para>Defines the distance units that will be used for the Minimum distance between regions and Maximum distance between regions parameters.</para>
        ///   <para>The available options and their corresponding units are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Map units—For the linear units of the output spatial reference</bullet_item><para/>
        ///     <bullet_item>Miles—For miles</bullet_item><para/>
        ///     <bullet_item>Kilometers—For kilometers</bullet_item><para/>
        ///     <bullet_item>Meters—For meters</bullet_item><para/>
        ///     <bullet_item>Yards—For yards</bullet_item><para/>
        ///     <bullet_item>Feet—For feet</bullet_item><para/>
        ///   </bulletList>
        ///   <para>The default is based on the input raster dataset. If the input raster is in feet, yards, miles, or any other imperial unit, Miles will be used. If the input raster is in meters, kilometers, or any other metric unit, Kilometers will be used.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义将用于“区域之间的最小距离”和“区域之间的最大距离”参数的距离单位。</para>
        ///   <para>可用选项及其对应的单位如下：</para>
        ///   <bulletList>
        ///     <bullet_item>地图单位 - 用于输出空间参考的线性单位</bullet_item><para/>
        ///     <bullet_item>英里 - 以英里为单位</bullet_item><para/>
        ///     <bullet_item>千米 - 千米</bullet_item><para/>
        ///     <bullet_item>米 - 对于米</bullet_item><para/>
        ///     <bullet_item>码 - 对于码</bullet_item><para/>
        ///     <bullet_item>英尺 - 用于英尺</bullet_item><para/>
        ///   </bulletList>
        ///   <para>默认值基于输入栅格数据集。如果输入栅格以英尺、码、英里或任何其他英制单位为单位，则将使用英里。如果输入栅格以米、千米或任何其他公制单位为单位，则将使用千米。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Distance units")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _distance_units_value _distance_units { get; set; } = _distance_units_value._MAP_UNITS;

        public enum _distance_units_value
        {
            /// <summary>
            /// <para>Map units</para>
            /// <para>Map units—For the linear units of the output spatial reference</para>
            /// <para>地图单位 - 用于输出空间参考的线性单位</para>
            /// </summary>
            [Description("Map units")]
            [GPEnumValue("MAP_UNITS")]
            _MAP_UNITS,

            /// <summary>
            /// <para>Miles</para>
            /// <para>Miles—For miles</para>
            /// <para>英里 - 以英里为单位</para>
            /// </summary>
            [Description("Miles")]
            [GPEnumValue("MILES")]
            _MILES,

            /// <summary>
            /// <para>Kilometers</para>
            /// <para>Kilometers—For kilometers</para>
            /// <para>千米 - 千米</para>
            /// </summary>
            [Description("Kilometers")]
            [GPEnumValue("KILOMETERS")]
            _KILOMETERS,

            /// <summary>
            /// <para>Meters</para>
            /// <para>Meters—For meters</para>
            /// <para>米 - 对于米</para>
            /// </summary>
            [Description("Meters")]
            [GPEnumValue("METERS")]
            _METERS,

            /// <summary>
            /// <para>Yards</para>
            /// <para>Yards—For yards</para>
            /// <para>码 - 对于码</para>
            /// </summary>
            [Description("Yards")]
            [GPEnumValue("YARDS")]
            _YARDS,

            /// <summary>
            /// <para>Feet</para>
            /// <para>Feet—For feet</para>
            /// <para>英尺 - 用于英尺</para>
            /// </summary>
            [Description("Feet")]
            [GPEnumValue("FEET")]
            _FEET,

        }

        /// <summary>
        /// <para>Input raster or feature of existing regions</para>
        /// <para><xdoc>
        ///   <para>A dataset identifying where regions already exist.</para>
        ///   <para>The input can be a raster or feature dataset. If the input is a raster, any location in the raster with a valid value is considered already allocated. All other locations are set to NoData.</para>
        ///   <para>In the parameterized region-growing algorithm, no region will grow from any location identified as an existing region. Existing regions will be used in the growth and evaluation of the Minimum distance between regions and Maximum distance between regions parameters as described in the corresponding parameter descriptions above.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>用于标识区域已存在位置的数据集。</para>
        ///   <para>输入可以是栅格数据集或要素数据集。如果输入为栅格，则栅格中任何具有有效值的位置都被视为已分配。所有其他位置都设置为 NoData。</para>
        ///   <para>在参数化区域增长算法中，任何区域都不会从标识为现有区域的任何位置增长。现有区域将用于增长和评估区域之间的最小距离和区域之间的最大距离参数，如上述相应参数描述中所述。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input raster or feature of existing regions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_existing_regions { get; set; } = null;


        /// <summary>
        /// <para>Number of neighbors to use in growth</para>
        /// <para><xdoc>
        ///   <para>Defines which neighboring cells to use in the growth of the regions.</para>
        ///   <para>The available options are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Four—Only the four direct (orthogonal) neighbors of the region cells will be considered in the region growth.</bullet_item><para/>
        ///     <bullet_item>Eight—The eight nearest neighbors (orthogonal and diagonal) will be considered in the region growth. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义在区域生长中使用的相邻像元。</para>
        ///   <para>可用选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>四 - 在区域生长中仅考虑区域像元的四个直接（正交）邻居。</bullet_item><para/>
        ///     <bullet_item>八 - 在区域增长中将考虑八个最近邻（正交和对角线）。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Number of neighbors to use in growth")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _number_of_neighbors_value _number_of_neighbors { get; set; } = _number_of_neighbors_value._EIGHT;

        public enum _number_of_neighbors_value
        {
            /// <summary>
            /// <para>Eight</para>
            /// <para>Eight—The eight nearest neighbors (orthogonal and diagonal) will be considered in the region growth. This is the default.</para>
            /// <para>八 - 在区域增长中将考虑八个最近邻（正交和对角线）。这是默认设置。</para>
            /// </summary>
            [Description("Eight")]
            [GPEnumValue("EIGHT")]
            _EIGHT,

            /// <summary>
            /// <para>Four</para>
            /// <para>Four—Only the four direct (orthogonal) neighbors of the region cells will be considered in the region growth.</para>
            /// <para>四 - 在区域生长中仅考虑区域像元的四个直接（正交）邻居。</para>
            /// </summary>
            [Description("Four")]
            [GPEnumValue("FOUR")]
            _FOUR,

        }

        /// <summary>
        /// <para>Islands not allowed in regions</para>
        /// <para><xdoc>
        ///   <para>Defines whether or not islands will be allowed within the potential regions.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The parameterized region-growing algorithm ensures there will be no islands within a region. This is the default.
        ///     <para>A flood field algorithm is implemented as a postprocess once the regions are created but before the regions are selected. If there are islands within a region, they will be filled in and the cells will join the region. Since the fill process occurs before the selection process, the utility of the island cells will be added to the region, and their values will be included in the selection process of the regions and in the statistics of the output regions. As a result of the fill process, it is likely that the total area allocated will exceed the target specified by the Total area parameter.</para>
        ///     </bullet_item><para/>
        ///     <bullet_item>Unchecked—Islands will be allowed.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义是否允许在潜在区域内使用岛屿。</para>
        ///   <bulletList>
        /// <bullet_item>选中 - 参数化区域增长算法可确保区域内没有孤岛。这是默认设置。
        ///     <para>洪水场算法在创建区域后但在选择区域之前实现为后处理。如果某个区域内有岛屿，则这些岛屿将被填充，并且单元格将加入该区域。由于填充过程发生在选择过程之前，因此岛像元的效用将被添加到区域中，并且其值将包含在区域的选择过程和输出区域的统计数据中。填充过程的结果是，分配的总面积可能会超过总面积参数指定的目标。</para>
        ///     </bullet_item><para/>
        ///     <bullet_item>未选中 - 允许孤岛。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Islands not allowed in regions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _no_islands_value _no_islands { get; set; } = _no_islands_value._true;

        public enum _no_islands_value
        {
            /// <summary>
            /// <para>NO_ISLANDS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_ISLANDS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>ISLANDS_ALLOWED</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("ISLANDS_ALLOWED")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Number of seeds to grow from</para>
        /// <para><xdoc>
        ///   <para>Defines the number of seeds from which to grow the potential regions.</para>
        ///   <para>The available options are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Based on input—The number of seeds will be based on the number of cells in the input raster. When the input raster has 100,000 cells or fewer, the default is Maximum. When the input raster has more than 100,000 cells, the default is Small. This is the default.</bullet_item><para/>
        ///     <bullet_item>Small—The number of seeds will be equal to 10 percent of the number of cells in the input raster, after NoData cells are excluded, but not to exceed 1,600 seeds.</bullet_item><para/>
        ///     <bullet_item>Medium—The number of seeds will be equal to 20 percent of the number of cells in the input raster, after NoData cells are excluded, but not to exceed 2,500 seeds.</bullet_item><para/>
        ///     <bullet_item>Large—The number of seeds will be equal to 30 percent of the number of cells in the input raster, after NoData cells are excluded, but not to exceed 3,600 seeds.</bullet_item><para/>
        ///     <bullet_item>Maximum—The region growth will occur at each available cell within the input raster. Available cells are all cells that are not NoData and not identified as an existing region.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义用于种植潜在区域的种子数量。</para>
        ///   <para>可用选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>基于输入 - 种子数量将基于输入栅格中的像元数。当输入栅格的像元数不超过 100,000 个时，默认值为最大值。当输入栅格的像元数超过 100,000 个时，默认值为小。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>小 - 排除 NoData 像元后，种子数将等于输入栅格中像元数的 10%，但不超过 1,600 个种子。</bullet_item><para/>
        ///     <bullet_item>中 - 排除 NoData 像元后，种子数将等于输入栅格中像元数的 20%，但不超过 2,500 个种子。</bullet_item><para/>
        ///     <bullet_item>大 - 排除 NoData 像元后，种子数将等于输入栅格中像元数的 30%，但不超过 3,600 个种子。</bullet_item><para/>
        ///     <bullet_item>最大值—区域增长将发生在输入栅格中的每个可用像元处。可用单元格是不是 NoData 且未标识为现有区域的所有单元格。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Number of seeds to grow from")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _region_seeds_value _region_seeds { get; set; } = _region_seeds_value._AUTO;

        public enum _region_seeds_value
        {
            /// <summary>
            /// <para>Based on input</para>
            /// <para>Based on input—The number of seeds will be based on the number of cells in the input raster. When the input raster has 100,000 cells or fewer, the default is Maximum. When the input raster has more than 100,000 cells, the default is Small. This is the default.</para>
            /// <para>基于输入 - 种子数量将基于输入栅格中的像元数。当输入栅格的像元数不超过 100,000 个时，默认值为最大值。当输入栅格的像元数超过 100,000 个时，默认值为小。这是默认设置。</para>
            /// </summary>
            [Description("Based on input")]
            [GPEnumValue("AUTO")]
            _AUTO,

            /// <summary>
            /// <para>Small</para>
            /// <para>Small—The number of seeds will be equal to 10 percent of the number of cells in the input raster, after NoData cells are excluded, but not to exceed 1,600 seeds.</para>
            /// <para>小 - 排除 NoData 像元后，种子数将等于输入栅格中像元数的 10%，但不超过 1,600 个种子。</para>
            /// </summary>
            [Description("Small")]
            [GPEnumValue("SMALL")]
            _SMALL,

            /// <summary>
            /// <para>Medium</para>
            /// <para>Medium—The number of seeds will be equal to 20 percent of the number of cells in the input raster, after NoData cells are excluded, but not to exceed 2,500 seeds.</para>
            /// <para>中 - 排除 NoData 像元后，种子数将等于输入栅格中像元数的 20%，但不超过 2,500 个种子。</para>
            /// </summary>
            [Description("Medium")]
            [GPEnumValue("MEDIUM")]
            _MEDIUM,

            /// <summary>
            /// <para>Large</para>
            /// <para>Large—The number of seeds will be equal to 30 percent of the number of cells in the input raster, after NoData cells are excluded, but not to exceed 3,600 seeds.</para>
            /// <para>大 - 排除 NoData 像元后，种子数将等于输入栅格中像元数的 30%，但不超过 3,600 个种子。</para>
            /// </summary>
            [Description("Large")]
            [GPEnumValue("LARGE")]
            _LARGE,

            /// <summary>
            /// <para>Maximum</para>
            /// <para>Maximum—The region growth will occur at each available cell within the input raster. Available cells are all cells that are not NoData and not identified as an existing region.</para>
            /// <para>最大值—区域增长将发生在输入栅格中的每个可用像元处。可用单元格是不是 NoData 且未标识为现有区域的所有单元格。</para>
            /// </summary>
            [Description("Maximum")]
            [GPEnumValue("MAXIMUM")]
            _MAXIMUM,

        }

        /// <summary>
        /// <para>Resolution of the growth</para>
        /// <para><xdoc>
        ///   <para>Sets the resolution at which region growth occurs.</para>
        ///   <para>The input raster will be resampled to the resolution determined by the number of cells identified by this parameter (see below). For example, for LOW, the input raster is resampled to 147,356 cells. The parameterized region-growing algorithm grows on the resampled intermediate raster. Once the regions are selected from the resampled intermediate raster, the selected regions will be resampled to the Environment cell size.</para>
        ///   <para>An adjustment to the target resolutions identified below may be implemented if the number of cells in the desired average region size is too small or too large. This adjustment makes sure there will be enough cells in each desired region or that unnecessary processing will not occur. As a result, the total cells for the intermediate resampled raster for each of the specified resolutions below can be lower or higher than the target number of cells.</para>
        ///   <para>If the input has less than 147,356 cells or Maximum is selected, no resampling will occur and the region growth will process on all cells in the input raster. If the input raster has less than 147,356 cells, the Low, Medium, or High options have no effect.</para>
        ///   <para>The available options are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Based on input—The resolution will be based on the number of cells in the input raster. When the input raster has 500,000 cells or fewer, the default is Maximum. When the input raster has more than 500,000 cells, the default is Low. This is the default.</bullet_item><para/>
        ///     <bullet_item>Low—The analysis will be performed on an intermediate raster containing 147,356 (384 x 384) cells distributed in the same x and y ratio as the input raster.</bullet_item><para/>
        ///     <bullet_item>Medium—The analysis will be performed on an intermediate raster containing 262,144 (512 x 512) cells distributed in the same x and y ratio as the input raster.</bullet_item><para/>
        ///     <bullet_item>High—The analysis will be performed on an intermediate raster containing 589,824 (768 x 768) cells distributed in the same x and y ratio as the input raster.</bullet_item><para/>
        ///     <bullet_item>Maximum—The analysis will be performed on all cells in the input raster.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>设置区域增长的分辨率。</para>
        ///   <para>输入栅格将被重新采样为由此参数标识的像元数确定的分辨率（见下文）。例如，对于 LOW，输入栅格将重采样为 147,356 个像元。参数化区域增长算法在重采样的中间栅格上增长。从重新采样的中间栅格中选择区域后，所选区域将重新采样为环境像元大小。</para>
        ///   <para>如果所需平均区域大小中的像元数量太小或太大，则可以对下面确定的目标分辨率进行调整。此调整可确保每个所需区域中有足够的单元格，或者不会发生不必要的处理。因此，对于以下每个指定分辨率，中间重采样栅格的像元总数可能低于或高于目标像元数。</para>
        ///   <para>如果输入的像元数少于 147,356 个或选择了最大值，则不会进行重采样，并且将在输入栅格中的所有像元上处理区域增长。如果输入栅格的像元数少于 147,356 个，则低、中或高选项无效。</para>
        ///   <para>可用选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>基于输入 - 分辨率将基于输入栅格中的像元数。当输入栅格的像元数不超过 500,000 个时，默认值为最大值。当输入栅格的像元数超过 500,000 个时，默认值为低。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>低—将在包含 147,356 （384 x 384） 个像元的中间栅格上执行分析，该像元的 x 和 y 比与输入栅格的 x 和 y 比相同。</bullet_item><para/>
        ///     <bullet_item>中型—将在包含 262,144 （512 x 512） 个像元的中间栅格上执行分析，该像元的 x 和 y 比与输入栅格的 x 和 y 比相同。</bullet_item><para/>
        ///     <bullet_item>高 - 将在包含 589,824 （768 x 768） 个像元的中间栅格上执行分析，该像元的 x 和 y 比与输入栅格的 x 和 y 比相同。</bullet_item><para/>
        ///     <bullet_item>最大值—将对输入栅格中的所有像元执行分析。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Resolution of the growth")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _region_resolution_value _region_resolution { get; set; } = _region_resolution_value._AUTO;

        public enum _region_resolution_value
        {
            /// <summary>
            /// <para>Based on input</para>
            /// <para>Based on input—The resolution will be based on the number of cells in the input raster. When the input raster has 500,000 cells or fewer, the default is Maximum. When the input raster has more than 500,000 cells, the default is Low. This is the default.</para>
            /// <para>基于输入 - 分辨率将基于输入栅格中的像元数。当输入栅格的像元数不超过 500,000 个时，默认值为最大值。当输入栅格的像元数超过 500,000 个时，默认值为低。这是默认设置。</para>
            /// </summary>
            [Description("Based on input")]
            [GPEnumValue("AUTO")]
            _AUTO,

            /// <summary>
            /// <para>Low</para>
            /// <para>Low—The analysis will be performed on an intermediate raster containing 147,356 (384 x 384) cells distributed in the same x and y ratio as the input raster.</para>
            /// <para>低—将在包含 147,356 （384 x 384） 个像元的中间栅格上执行分析，该像元的 x 和 y 比与输入栅格的 x 和 y 比相同。</para>
            /// </summary>
            [Description("Low")]
            [GPEnumValue("LOW")]
            _LOW,

            /// <summary>
            /// <para>Medium</para>
            /// <para>Medium—The analysis will be performed on an intermediate raster containing 262,144 (512 x 512) cells distributed in the same x and y ratio as the input raster.</para>
            /// <para>中型—将在包含 262,144 （512 x 512） 个像元的中间栅格上执行分析，该像元的 x 和 y 比与输入栅格的 x 和 y 比相同。</para>
            /// </summary>
            [Description("Medium")]
            [GPEnumValue("MEDIUM")]
            _MEDIUM,

            /// <summary>
            /// <para>High</para>
            /// <para>High—The analysis will be performed on an intermediate raster containing 589,824 (768 x 768) cells distributed in the same x and y ratio as the input raster.</para>
            /// <para>高 - 将在包含 589,824 （768 x 768） 个像元的中间栅格上执行分析，该像元的 x 和 y 比与输入栅格的 x 和 y 比相同。</para>
            /// </summary>
            [Description("High")]
            [GPEnumValue("HIGH")]
            _HIGH,

            /// <summary>
            /// <para>Maximum</para>
            /// <para>Maximum—The analysis will be performed on all cells in the input raster.</para>
            /// <para>最大值—将对输入栅格中的所有像元执行分析。</para>
            /// </summary>
            [Description("Maximum")]
            [GPEnumValue("MAXIMUM")]
            _MAXIMUM,

        }

        /// <summary>
        /// <para>Region selection method</para>
        /// <para><xdoc>
        ///   <para>Identifies how the regions will be selected.</para>
        ///   <para>The available options are the following:</para>
        ///   <bulletList>
        ///     <bullet_item>Based on number of regions—The selection method is based on the Number of regions parameter. If the Number of regions is eight or less, the Combinatorial selection method is used. If the Number of regions parameter is greater than eight, the Sequential selection method is used. This is the default.</bullet_item><para/>
        ///     <bullet_item>Combinatorial—Selects the best regions based on the specified evaluation method, while honoring the spatial constraints, by testing all combinations of the desired number of regions within the candidate regions from the parameterized region-growing (PRG) algorithm.</bullet_item><para/>
        ///     <bullet_item>Sequential—Sequentially selects the best regions based on the evaluation method and that meets the spatial constraints until the desired number of regions is reached.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>确定如何选择区域。</para>
        ///   <para>可用选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>基于区域数 - 选择方法基于区域数参数。如果“区域数”为“8”或更少，则使用组合选择方法。如果“区域数”参数大于 8，则使用顺序选择方法。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>组合 - 通过从参数化区域增长 （PRG） 算法测试候选区域内所需区域数的所有组合，根据指定的评估方法选择最佳区域，同时遵循空间约束。</bullet_item><para/>
        ///     <bullet_item>顺序 - 根据评估方法顺序选择满足空间约束的最佳区域，直到达到所需的区域数。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Region selection method")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _selection_method_value _selection_method { get; set; } = _selection_method_value._AUTO;

        public enum _selection_method_value
        {
            /// <summary>
            /// <para>Based on number of regions</para>
            /// <para>Based on number of regions—The selection method is based on the Number of regions parameter. If the Number of regions is eight or less, the Combinatorial selection method is used. If the Number of regions parameter is greater than eight, the Sequential selection method is used. This is the default.</para>
            /// <para>基于区域数 - 选择方法基于区域数参数。如果“区域数”为“8”或更少，则使用组合选择方法。如果“区域数”参数大于 8，则使用顺序选择方法。这是默认设置。</para>
            /// </summary>
            [Description("Based on number of regions")]
            [GPEnumValue("AUTO")]
            _AUTO,

            /// <summary>
            /// <para>Combinatorial</para>
            /// <para>Combinatorial—Selects the best regions based on the specified evaluation method, while honoring the spatial constraints, by testing all combinations of the desired number of regions within the candidate regions from the parameterized region-growing (PRG) algorithm.</para>
            /// <para>组合 - 通过从参数化区域增长 （PRG） 算法测试候选区域内所需区域数的所有组合，根据指定的评估方法选择最佳区域，同时遵循空间约束。</para>
            /// </summary>
            [Description("Combinatorial")]
            [GPEnumValue("COMBINATORIAL")]
            _COMBINATORIAL,

            /// <summary>
            /// <para>Sequential</para>
            /// <para>Sequential—Sequentially selects the best regions based on the evaluation method and that meets the spatial constraints until the desired number of regions is reached.</para>
            /// <para>顺序 - 根据评估方法顺序选择满足空间约束的最佳区域，直到达到所需的区域数。</para>
            /// </summary>
            [Description("Sequential")]
            [GPEnumValue("SEQUENTIAL")]
            _SEQUENTIAL,

        }

        public LocateRegions SetEnv(int? autoCommit = null, object cellSize = null, object compression = null, object configKeyword = null, object extent = null, object geographicTransformations = null, object mask = null, object outputCoordinateSystem = null, object rasterStatistics = null, object scratchWorkspace = null, object snapRaster = null, double[] tileSize = null, object workspace = null)
        {
            base.SetEnv(autoCommit: autoCommit, cellSize: cellSize, compression: compression, configKeyword: configKeyword, extent: extent, geographicTransformations: geographicTransformations, mask: mask, outputCoordinateSystem: outputCoordinateSystem, rasterStatistics: rasterStatistics, scratchWorkspace: scratchWorkspace, snapRaster: snapRaster, tileSize: tileSize, workspace: workspace);
            return this;
        }

    }

}